`ifndef _ral_reg_PPU_REG_ppu_reg_TEST_DATA12_rtl_
`define _ral_reg_PPU_REG_ppu_reg_TEST_DATA12_rtl_

`include "vmm_ral_rw_field_rtl.sv"
`include "vmm_ral_notifier_rtl.sv"


module ral_reg_PPU_REG_ppu_reg_TEST_DATA12_rtl(input  clk,
                               input  rstn,
                               input  [31:0] hst_wdat,
                               output [31:0] hst_rdat,
                               input  [3:0] hst_sel,
                               input  hst_wen,
                               output [23:0] data_out,
                               output data_rd, data_wr,
                               input  data_wen,
                               input  [23:0] data_in);

vmm_ral_rw_field_rtl #(8, ('haf>>0))
   data_7_0(clk, rstn, data_out[7:0],
   hst_wdat[7:0], hst_sel[0], hst_wen,
   data_in[7:0], data_wen);

vmm_ral_rw_field_rtl #(8, ('haf>>8))
   data_15_8(clk, rstn, data_out[15:8],
   hst_wdat[15:8], hst_sel[1], hst_wen,
   data_in[15:8], data_wen);

vmm_ral_rw_field_rtl #(8, ('haf>>16))
   data_23_16(clk, rstn, data_out[23:16],
   hst_wdat[23:16], hst_sel[2], hst_wen,
   data_in[23:16], data_wen);


vmm_ral_notifier_rtl _n_data(clk, rstn, |hst_sel[2:0], hst_wen, data_rd, data_wr);


assign hst_rdat[31:0] = { data_out };


endmodule

`endif
